using System;

namespace Soccer.Core
{
	[Serializable]
    public abstract class DBOEventArgs<T> : EventArgs
        where T : DBO<T>
    {
		#region Fields

        private T _Item; 

        #endregion

        #region Constructors

        /// <summary>
        /// Default constructor. Create an empty DBOEventArgs
        /// </summary>
        public DBOEventArgs()
        {
        }

        /// <summary>
        /// Constructor with an object derive from DBO.
        /// </summary>
        /// <param name="item">The T object for Item property.</param>
        public DBOEventArgs(T item)
        {
            this._Item = item;
        } 

        #endregion

        #region Properties

        /// <summary>
        /// The Item of DBOEventArgs
        /// </summary>
        public T Item
        {
            get { return _Item; }
            set { _Item = value; }
        } 

        #endregion
    }
}
